<?php

class CanBoController extends BaseController {

    private $canbo;

    //Ham xay dung
    function __construct() {
        $this->canbo = new CanBo();
    }

    //Phuong thuc hien ds thong tin
    public function index() {
        $data = $this->canbo->GetList();
        $numRows = 0;

        return View::make('qlcanbo.index')
                        ->with("numRows", $numRows)
                        ->with("data", $data)
                        ->with("title", "Danh sách cán bộ kiểm tra");
    }

    //Phuong thuc hien khung them thong tin
    public function add() {
        return View::make('qlcanbo.add')
                        ->with("title", "Thêm cán bộ kiểm tra");
    }

    //Phuong thuc xu ly luu thong tin moi
    public function save() {
        if ($this->canbo->validation(Input::all())) {
            $data = array(
                "MSCB" => Input::get("mscb"),
                "HO_TEN" => trim(Input::get("hoten"))
            );
            if ($this->canbo->SaveIn($data)) {
                return Redirect::to('ql=themcanbo')
                                ->with('success', 'Thêm cán bộ hoàn tất!');
            }
            return Redirect::to('ql=themcanbo')
                            ->withInput()
                            ->with('error', 'Thêm cán bộ thất bại do đã tồn tại mã số cán bộ này trong CSDL!');
        }
        return Redirect::to('ql=themcanbo')
                        ->withInput()
                        ->with('error', 'Dữ liệu nhập vào không phù hợp!');
    }

    //Phuong thuc hien khung sua thong tin xac dinh
    public function edit() {
        if (Input::has('id')) {
            $id = Input::get('id');
            if (is_numeric($id)) {
                $row = $this->canbo->GetOne($id);
                $stt = 0;

                return View::make('qlcanbo.view')
                                ->with("stt", $stt)
                                ->with("row", $row)
                                ->with("title", "Xem thông tin chi tiết cán bộ");
            }
        }
        return $this->index();
    }

    //Phuong thuc xu ly luu thong tin da sua
    public function store() {
        $id = Input::get("id");
        $data = array(
            "MSCB" => Input::get("mscb"),
            "HO_TEN" => trim(Input::get("hoten"))
        );
        if ($this->canbo->validation(Input::all())) {
            if ($this->canbo->StoreIn($data, $id)) {
                return Redirect::to('ql=dscanbo')
                    ->with("success", "Sửa cán bộ hoàn tất!");
            }
            return Redirect::back()
                    ->with("error", "Sửa thất bại do MSCB trùng với cán bộ khác!");
        }
        return Redirect::back()
            ->with("error", "Sửa thất bại do dữ liệu không phù hợp!");
    }

    //Phuong thuc xoa mot thong tin nao do
    public function remove() {
        if (Input::has("id")) {
            $id = Input::get("id");
            if (is_numeric($id)) {
                if ($this->canbo->Remove($id)) {
//                    $appendlinks = array();
//                    $key = (Input::has('key')) ? $appendlinks['key'] = ucwords(preg_replace('/\s\s+/', ' ', trim(Input::get('key')))) : null;
//
//                    try {
//                        $data = $this->canbo->GetList($key);
//                        $data[0]->MSCB; //Bẫy lỗi
//                    } catch (Exception $ex) {
//                        $url = url("ql=dscanbo");
//                        $currentPage = (Input::has('page')) ? (Input::get("page") > 1) ? Input::get("page") : 1 : 1;
//                        Input::merge(array('page' => ( --$currentPage == 0) ? 1 : $currentPage));
//
//                        $data = $this->canbo->GetList($key);
//                        $data->setBaseUrl('ql=dscanbo');
//                        $data->appends($appendlinks)->links();
//
//                        $numRows = ($currentPage - 1) * $this->canbo->GetCBTT();
//                        $url = $url . "?page=" . $currentPage . (($key != null) ? "&key=" . $key : "");
//                        return View::make('qlcanbo.index')
//                                        ->with("key", $key)
//                                        ->with("numRows", $numRows)
//                                        ->with("data", $data)
//                                        ->with("url", $url)
//                                        ->with("warning", "Xóa cán bộ kiểm tra hoàn tất!<br/>Cảnh báo: không khuyến khích việc xóa dữ liệu này.")
//                                        ->with("title", "Danh sách cán bộ kiểm tra");
//                    }
                    return Redirect::back()
                                    ->with("warning", "Xóa cán bộ kiểm tra hoàn tất!<br/>Cảnh báo: không khuyến khích việc xóa dữ liệu này.");
                }
                return Redirect::back()
                                ->with("error", "Xóa cán bộ thất bại do cán bộ này đã phát sinh trong các đoàn kiểm tra!");
            }
        }
        return Redirect::back()
                        ->with("error", "Không thể xóa do không có cán bộ này trong CSDL!");
    }
    
    //Tim kiem thong tin du lieu voi ajax
    public function search()
    {
        if(Request::ajax())
        {
            $mscb = Input::get('mscb');
            return Response::json($this->canbo->GetWithMSCB($mscb));
        }
    }
}
